import { type ConfigEnv,type UserConfigExport,loadEnv } from 'vite';
// @ts-ignore
import path from 'path';
import vue from '@vitejs/plugin-vue';

import { viteMockServe } from 'vite-plugin-mock'

// mode：模式
export default ({ command,mode }: ConfigEnv) : UserConfigExport => {
  // 调用loadEnv方法返回当前环境的对象
  // 参数1：当前模式(默认是开发模式)，参数2：当前环境的变量文件在哪里，process.cwd()可以返回index.html所在的位置(也就是项目的根目录)
  //@ts-ignore
  let env = loadEnv(mode,process.cwd())
  return {
    plugins: [
      vue(),
      viteMockServe({
        localEnabled: command === 'serve' // 开发环境使用mock接口
      }),
    ],
    resolve: {
      alias: {
        "@": path.resolve("./src"), // 相当路径别名配置，使用@代替src
      },
    },
    // 代理跨越
    server:{
      proxy:{
        [env.VITE_APP_BASE_API]:{
          // 指定要代理的真正的服务器地址
          target:env.VITE_APP_SERVICE_URL,
          changeOrigin: true,
          rewrite: (path) => path.replace(/^\/dev-api/,''),
        }
      }
    }
  };
};

